package org.osomit.sacct.session.manager.iface;

import org.osomit.sacct.session.token.impl.SessionToken;
import org.osomit.sacct.session.manager.impl.SessionManagerImpl;
import org.osomit.sacct.entity.transfer.SessionHandshakeResponse;
import com.google.inject.ImplementedBy;


/**
 * @author Jian Fang (John.Jian.Fang@gmail.com)
 * 
 * Date: Jul 2, 2009
 */
@ImplementedBy(SessionManagerImpl.class)
public interface SessionManager {

    public SessionHandshakeResponse handshake(byte[] clientPubKeyEnc);

    public void updateToken(SessionToken token);

    public SessionToken getToken(String id);

    public int getTokenNumber();

    public void clear();

    public boolean isUseOTP();
    
}
